/**
 * 
 */
package NoteBook;

import java.util.Scanner;

/**
 * 1、遍历字符串 -charAt
 * 2、统计录入字符串的个数，统计大写字母，小写字母，数字字母的次数（不考虑其他字符）
 *  str.charAt(i)>='a'&&str.charAt(i)<='z'...
 * 3、字符串拼接  -初始化字符串+拼接符(+)  String s="";  s+=?   每次拼接都会产生一个新的对象
 *  浪费时间，又浪费内存，建议使用StringBuilder
 * 4、字符串反转  
 * @author Jiang Zhiyan
 *
 * 2021年5月18日 下午3:35:50
 */
public class _06字符串的一系列操作 {
 public static void main(String[] args) {
	
//	一、遍历字符串
	 Scanner sc = new Scanner(System.in); //输入字符串
	 System.out.println("请输入字符串："); 
	 String str=sc.nextLine();
	 printArray(str);
	
//	二、 统计录入字符串的个数，统计大写字母，小写字母，数字字母的次数（不考虑其他字符）
	System.out.print("该字符串中大写字母个数：");
	bigAl(str);
	System.out.print("该字符串中小写字母个数：");
	smallAl(str);
	System.out.print("该字符串中数字字母个数：");
	numAl(str);
	
//   三、字符串拼接
	
     int [] arr= {1,2,3};
     String s=arrayToString(arr);
     System.out.println(s);
	
//	 四、字符串反转
     System.out.println("请输入要反转的字符串：");
     Scanner sc1 = new Scanner(System.in);
     String s1=sc1.nextLine();
     System.out.println("反转结果："+reverse(s1));
     
 }
//打印数组-遍历 (根据字符串的索引值来得到其对应的字符)
public static void printArray(String arr) {
	 System.out.print("[");
	 for(int i=0;i<arr.length();i++) {
		 if(i==arr.length()-1) {
			 System.out.print(arr.charAt(i));
		 }else {
			 System.out.print(arr.charAt(i)+",");
		 }
	 }
	 System.out.println("]");
}

//统计大写字母
public static void bigAl(String str) {
	int count=0;
	for(int i=0;i<str.length();i++) {
//		字符的范围可以来判断
		if(str.charAt(i)>='A'&&str.charAt(i)<='Z')
			count++;
	}
	System.out.println(count);
}
//统计小写字母
public static void smallAl(String str) {
	int count=0;
	for(int i=0;i<str.length();i++) {
//		字符的范围可以来判断
		if(str.charAt(i)>='a'&&str.charAt(i)<='z')
			count++;
	}
	System.out.println(count);
}
//统计数字
public static void numAl(String str) {
	int count=0;
	for(int i=0;i<str.length();i++) {
//		字符的范围可以来判断
		if(str.charAt(i)>='0'&&str.charAt(i)<='9')
			count++;
	}
	System.out.println(count);
}
/**
 * 两个明确：
 * 1.参数类型：int arr []
 * 2.返回值类型：String
 * @param arr
 */
//   字符串拼接方法
      public static String arrayToString(int arr []) {
    	 String s="";
    	 s+="[";
      for(int i=0;i<arr.length;i++) {
    	  if(i==arr.length-1) {
    		  s+=arr[i];
    	  }else {
    		  s+=arr[i]+",";
    	  }
      }
         s+="]";
      return s;
      }
      
    /**
     *四、 字符串反转：
     * 参数类型：String
     * 返回值类型：String
     */
     public static String reverse(String str) {
    	 String s="";
    	 for(int i=str.length()-1;i>=0;i--) {
    		s+=str.charAt(i);
    	 }
    	 return  s;
     }
}
